<?php namespace Common\Model;
use Hdphp\Model\Model;
//建立模型
class Cate extends Model{
	//指定表名
	protected $table = 'category';
	//错误提示/自动验证
	protected $validate = array(
		//array(字段名,验证方法,错误信息,验证条件,验证时间)
		array('cname','required','分类名不能为空',3,3),
		array('ctitle','required','分类标题不能为空',3,3),
		array('ctitle','maxlen:120','分类标题不能超过120个字符',3,3),
	);
	//添加分类
	public function store(){
		//create之后$this->data才会有数据
		//create会触发自动验证
		if($this->create()){
			//p($this->data);exit;
			//在添加方法的add中所需要的数据就是$this->data里面的数据
			$this->add();
			return TRUE;
		}
		return FALSE;
	}
	//修改
	public function edit(){
		//create会触发自动验证
		if(!$this->create()) return FALSE;
		//修改表数据，需要在页面加隐藏域cid	
		$this->save();
		return TRUE;
	}
	//获得当前分类子类
	public function getSon($data,$cid){
		//定义空数组
		$temp=[];
		//对$data进行递归，查找$data中pid等于当前分类的cid的子分类
		foreach($data as $v){
			//如果有数据的pid对应当前cid则v[’pid‘]=cid这条数据就是cid的子分类，压入数组temp中
			if($v['pid']==$cid){
				$temp[]=$v['cid'];
				//递归调用合并数组
				$temp=array_merge($temp,$this->getSon($data,$v['cid']));
			}
		}
		//得到最终结果，返回temp
		return $temp;
	}
	//获得除了自己和自己子集的数据
	public function getNoMy($cid){
		//获得自己的子集的cid
		$cids=$this->getSon($this->get(),$cid);
		//压入自己的cid
		$cids[]=$cid;
		//查询排除自己和自己子集cid的数据
		//SELECT * FROM category WHERE cid NOT IN(2,3,5);
		$where="cid NOT IN(".implode(',', $cids).")";
		return $this->where($where)->get();
	}
}
 ?>